home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
DB_CLIPP
/
1159.ZIP
/
OSSADD.PRG
< prev
next >
Wrap
Text File
|
1986-12-29
|
11KB
|
469 lines
SET DELETED ON
SET SAFETY OFF
SET BELL OFF
CLEAR
PUBLIC CALOVER
CALOVER=0
DUPL=0
SELECT 1
USE
USE &DBNAME INDEX &INDEX1,&INDEX2
SELECT 2
USE REPWORK
SET FORMAT TO REPINST.FMT
X=0
DO WHILE X<1
APPEND
N4='K'
DO WHILE N4#'Y'.AND.N4#'N'
CLEAR
?
?
?
?
?
?'Do you want to add more records or make any changes in those records'
?
WAIT 'which you have just added ? (Y/N)' TO N4
N4=UPPER(N4)
IF N4#'Y'.AND.N4#'N'
LOOP
ENDIF
ENDDO
IF N4='N'
ERRFILE=0
CHECKDT=1
CHECKDATE='K'
DO WHILE CHECKDATE#'N' .AND. CHECKDATE#'Y'
CLEAR
@ 5,7 SAY 'Do you wish to make any corrections during the record checking'
@ 6,7 SAY 'procedure ? (Y/N)'
@ 10,7 SAY 'If not, it will be necessary to make the corrections after the'
WAIT ' record check is complete.' TO CHECKDATE
CHECKDATE=UPPER(CHECKDATE)
IF CHECKDATE='N'
CHECKDT=0
ENDIF
ENDDO
CLEAR
@ 1,16 SAY 'Data base in use: '
?? OSS
@ 3,0
?'The record additions are now being processed, and checked. If they are'
?'okay, they will automatically be added to the main data base.'
?
?
?
?
?' ONE MOMENT PLEASE'
?
?' ________________________________________'
?' | |'
?' | PLEASE DO NOT PRESS ANY KEYS YET |'
?' |________________________________________|'
?
?
@ 0,16 SAY 'Working on preliminary record check.'
TOTALREC=RECCOUNT()
IF DUPREC='N'
DELETE FOR LEN(TRIM(INST_TYPE))=0 .OR. LEN(TRIM(TVA_NO))=0 .OR.;
ASC(LTRIM(TVA_NO))=63
ELSE
DELETE FOR LEN(TRIM(INST_TYPE))=0.OR.ASC(LTRIM(TVA_NO))=63
ENDIF
GO TOP
DO WHILE .NOT. EOF()
REPLACE TVA_NO WITH UPPER(LTRIM(TVA_NO))
REPLACE SERIAL_NO WITH UPPER(LTRIM(SERIAL_NO))
IF TVAID='Y'
IF ' ' $ TRIM(TVA_NO)
VSTR=TRIM(TVA_NO)
DO WHILE ' ' $ VSTR
P=AT(' ',VSTR)
VSTR=LEFT(VSTR,P-1)+RIGHT(VSTR,LEN(VSTR)-P)
ENDDO
REPLACE TVA_NO WITH VSTR
ENDIF
ENDIF
IF SERID='Y'
IF ' ' $ TRIM(SERIAL_NO)
VSTR=TRIM(SERIAL_NO)
DO WHILE ' ' $ VSTR
P=AT(' ',VSTR)
VSTR=LEFT(VSTR,P-1)+RIGHT(VSTR,LEN(VSTR)-P)
ENDDO
REPLACE SERIAL_NO WITH VSTR
ENDIF
ENDIF
SKIP
ENDDO
IF DUPREC='N'
GO BOTTOM
DO WHILE .NOT. BOF()
RECNUM=RECNO()
TVANO=TVA_NO
DELETE FOR TVANO=TVA_NO .AND. RECNUM # RECNO()
GO RECNUM
SKIP -1
ENDDO
ENDIF
SET DELETED OFF
COPY TO REPDEL FOR DELETED()
SET DELETED ON
PACK
YR=YEAR(DAT)
MO=MONTH(DAT)
DY=DAY(DAT)
MODREC=RECCOUNT()
@ 0,3 SAY 'Total No. of records (after any deletions) in this ;
addition is'
?? MODREC
??'.'
@ 2,3 SAY 'Total No. of records which were deleted is'
RECDEL=TOTALREC-MODREC
?? RECDEL
??'.'
GO TOP
@ 23,24 SAY 'Now checking record'
@ 23,43 SAY RECNO()
SELECT 4
USE REPERR
SELECT 2
DO WHILE .NOT.EOF()
REPLACE SUBCATID WITH UPPER(LTRIM(SUBCATID))
REPLACE INST_TYPE WITH LTRIM(INST_TYPE)
IF DUPREC='N'
SELECT 1
SEEK B->TVA_NO
IF .NOT. EOF()
SELECT 2
REPLACE TVA_NO WITH '?'+TVA_NO
REPLACE REMARK WITH 'DUPLICATE ENTRY !'
DUPL=1
ENDIF
SELECT 2
ENDIF
REPLACE LAST_UPDATE WITH DATE()
CVAR=LTRIM(TRIM(UPPER(COMLINE)))
IF '.D.' $ CVAR.OR.'.E.' $ CVAR
REPLACE REMARK WITH ' '
IF LEN(CVAR)<4
CVAR=' '
ENDIF
ENDIF
IF '.' $ CVAR
IF '2' $ CVAR
REPLACE CALIB_INT WITH 99
REPLACE BY_DATE WITH 0
IF '.ED.' $ CVAR.OR.'.DD.' $ CVAR
REPLACE CALIB_DATE WITH CTOD(' / / ')
REPLACE CAL_DUE_DT WITH CALIB_DATE
ENDIF
REPLACE COMLINE WITH ' '
SKIP
@ 23,43 SAY RECNO()
LOOP
ENDIF
IF '3' $ CVAR
REPLACE CALIB_INT WITH 0
REPLACE BY_DATE WITH 0
IF '.ED.' $ CVAR.OR.'.DD.' $ CVAR
REPLACE CALIB_DATE WITH CTOD(' / / ')
REPLACE CAL_DUE_DT WITH CALIB_DATE
ENDIF
REPLACE COMLINE WITH ' '
SKIP
@ 23,43 SAY RECNO()
LOOP
ENDIF
DO CASE
CASE '.OF.' $ CVAR.OR.'.0F.' $ CVAR
CALOVER=0
REPLACE BY_DATE WITH CALOVER
CASE '.PO.' $ CVAR
CALOVER=200
REPLACE BY_DATE WITH CALOVER
CASE '.P0.' $ CVAR
CALOVER=200
REPLACE BY_DATE WITH CALOVER
CASE '.O.' $ CVAR
CALOVER=100
REPLACE BY_DATE WITH CALOVER
CASE '.0.' $ CVAR
CALOVER=100
REPLACE BY_DATE WITH CALOVER
ENDCASE
IF ('.ED.' $ CVAR.OR.'.DD.' $ CVAR).AND.(CALIB_INT=0.OR.CALIB_INT=99)
REPLACE CALIB_DATE WITH CTOD(' / / ')
REPLACE CAL_DUE_DT WITH CALIB_DATE
REPLACE BY_DATE WITH 0
REPLACE COMLINE WITH ' '
SKIP
@ 23,43 SAY RECNO()
LOOP
ENDIF
ENDIF
IF CALIB_INT=99 .OR. CALIB_INT=0
REPLACE BY_DATE WITH 0
REPLACE COMLINE WITH ' '
SKIP
@ 23,43 SAY RECNO()
LOOP
ENDIF
REPLACE COMLINE WITH ' '
IF YEAR(CALIB_DATE)+100-YEAR(DAT)<10
MOCALDT=MONTH(CALIB_DATE)
DYCALDT=DAY(CALIB_DATE)
YRCALDT=INT(YEAR(CALIB_DATE)+100)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
REPLACE CALIB_DATE WITH CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+;
STR(YRCALDT,4,0))
ENDIF
IF YEAR(CAL_DUE_DT)+100-YEAR(DAT)<10
MOCALDT=MONTH(CAL_DUE_DT)
DYCALDT=DAY(CAL_DUE_DT)
YRCALDT=INT(YEAR(CAL_DUE_DT)+100)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
REPLACE CAL_DUE_DT WITH CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+;
STR(YRCALDT,4,0))
ENDIF
IF BY_DATE#200.AND.CALOVER=0
TCOMP=YR*365.24+MO*30.44+DY
TDCOMP=YR*365.24+(MO-CALIB_INT)*30.44+DY
CDCOMP=YEAR(CALIB_DATE)*365.24+MONTH(CALIB_DATE)*30.44+DAY(CALIB_DATE)
CALDUEP=CDCOMP+CALIB_INT*30.44-5
CALDUDT=YEAR(CAL_DUE_DT)*365.24+MONTH(CAL_DUE_DT)*30.44+DAY(CAL_DUE_DT)
IF TDCOMP>CDCOMP.OR.CDCOMP>TCOMP
IF CHECKDT=0
ERRFILE=1
SELECT 4
APPEND BLANK
REPLACE SUBCATID WITH UPPER(B->SUBCATID)
REPLACE INST_TYPE WITH B->INST_TYPE
REPLACE TVA_NO WITH B->TVA_NO
REPLACE SERIAL_NO WITH B->SERIAL_NO
REPLACE BY_DATE WITH B->BY_DATE
REPLACE CALIB_DATE WITH B->CALIB_DATE
REPLACE CAL_DUE_DT WITH B->CAL_DUE_DT
REPLACE LOCATION WITH B->LOCATION
REPLACE REMARK WITH B->REMARK
REPLACE CALIB_INT WITH B->CALIB_INT
REPLACE LAST_UPDAT WITH B->LAST_UPDAT
SELECT 2
DELETE
SKIP
LOOP
ENDIF
DO REPCALDT
@ 23,24 SAY 'Now checking record'
@ 23,43 SAY RECNO()
LOOP
ENDIF
YRDUE=YEAR(CALIB_DATE)
MODUE=MONTH(CALIB_DATE)+CALIB_INT
DYDUE=DAY(CALIB_DATE)
IF MODUE>12
YRDUE=YRDUE+INT(MODUE/12)
MODUE=INT(MODUE-INT(MODUE/12)*12)
ENDIF
M=1
IF MODUE>9
M=2
ENDIF
D=2
IF DYDUE<10
D=1
ENDIF
DATDU=STR(MODUE,M,0)+'/'+STR(DYDUE,D,0)+'/'+STR(YRDUE,4,0)
CALCDUDT=CTOD(DATDU)
CALDUETY=YEAR(CALCDUDT)*365.24+MONTH(CALCDUDT)*30.44+DAY(CALCDUDT)
IF CALDUDT>CALDUETY.OR.CALDUDT<CALDUEP
IF CHECKDT=0
ERRFILE=1
SELECT 4
APPEND BLANK
REPLACE SUBCATID WITH UPPER(B->SUBCATID)
REPLACE INST_TYPE WITH B->INST_TYPE
REPLACE TVA_NO WITH B->TVA_NO
REPLACE SERIAL_NO WITH B->SERIAL_NO
REPLACE BY_DATE WITH B->BY_DATE
REPLACE CALIB_DATE WITH B->CALIB_DATE
REPLACE CAL_DUE_DT WITH B->CAL_DUE_DT
REPLACE LOCATION WITH B->LOCATION
REPLACE REMARK WITH B->REMARK
REPLACE CALIB_INT WITH B->CALIB_INT
REPLACE LAST_UPDAT WITH B->LAST_UPDAT
SELECT 2
DELETE
SKIP
LOOP
ENDIF
DO REPCALDU
@ 23,24 SAY 'Now checking record'
@ 23,43 SAY RECNO()
LOOP
ENDIF
IF BY_DATE#200
REPLACE BY_DATE WITH CALDUDT-1
ENDIF
ENDIF
SKIP
CALOVER=0
@ 23,43 SAY RECNO()
ENDDO
IF ERRFILE=1
SELECT 4
GO TOP
DO ERRFILE
USE
SELECT 2
APPEND FROM REPERR
PACK
SELECT 4
USE REPERR
ZAP
SELECT 2
ENDIF
@ 23,6 SAY 'Finished record check. Now adding records to main data base.'
GO TOP
IF EOF()
CLEAR
@ 1,15 SAY 'Data base in use: '
?? OSS
@ 4,20 SAY 'NO RECORDS WERE ADDED TO THE DATA BASE.'
IF DUPREC='N'
@ 7,0 SAY 'No records were found which contained both '
?? INSTNAME
?'designation and a valid '
?? TVANUMBER
??' designation.'
ELSE
@ 7,0 SAY 'No records were found which contained a designation'
?'for the '
?? INSTNAME
??' field.'
ENDIF
?
?'Therefore, no records were added to the data base.'
USE REPDEL
ZAP
USE REPWORK
ZAP
@ 12,0
WAIT
RETURN
ENDIF
USE
SELECT 1
APPEND FROM REPWORK
USE REPWORK
SET BELL ON
IF DUPL=1
CLEAR
@ 5,0 SAY 'PLEASE NOTE THAT ONE OR MORE DUPLICATE '
?? TVANUMBER
??' ID CODES'
?
?'WERE ENCOUNTERED. THEY HAVE BEEN CODED AS BEING DUPLICATE RECORDS.'
?
?'IN ADDITION, A QUESTION MARK WAS ADDED TO THE FRONT OF THE'
?
? TVANUMBER
??' IN QUESTION.'
?
?
?
WAIT
ENDIF
ADDFILE=1
MODFILE=0
SEECODE='K'
DO WHILE SEECODE#'APPLE'
CLEAR
@ 1,10 SAY 'What do you want to do ?'
@ 4,10 SAY 'A) Print the record(s) which you just added.'
@ 6,10 SAY 'B) View the record(s) which you just added on this screen.'
@ 8,10 SAY 'C) Both print and view the record(s) which you just added.'
IF RECDEL>0
@ 10,7 SAY '-----------------------------------------------------------------'
@ 12,10 SAY 'D) Print the record(s) which were just deleted.'
@ 14,10 SAY 'E) View the record(s) which were just deleted.'
@ 16,10 SAY 'F) Both print and view the record(s) which were just deleted.'
ENDIF
?
?
?' Press "RETURN" to return to the previous menu.'
?
WAIT ' ' TO SEECODE
??' WORKING . . .'
SEECODE=UPPER(SEECODE)
DO CASE
CASE SEECODE='A'
PDELREC=0
PRINTOUT=1
VIEW=0
CASE SEECODE='B'
PDELREC=0
VIEW=1
PRINTOUT=0
CASE SEECODE='C'
PDELREC=0
PRINTOUT=1
VIEW=1
CASE SEECODE='D'.AND.RECDEL>0
PDELREC=1
USE REPDEL
PRINTOUT=1
VIEW=0
CASE SEECODE='E'.AND.RECDEL>0
PDELREC=1
USE REPDEL
VIEW=1
PRINTOUT=0
CASE SEECODE='F'.AND.RECDEL>0
PDELREC=1
USE REPDEL
PRINTOUT=1
VIEW=1
CASE ASC(SEECODE)=0
USE REPDEL
ZAP
USE REPWORK
ZAP
RETURN
CASE ASC(SEECODE)<65.OR.ASC(SEECODE)>70.OR.RECDEL=0
LOOP
ENDCASE
DO REPINSTP
USE REPWORK
SEECODE='K'
LOOP
ENDDO
USE REPDEL
ZAP
USE REPWORK
ZAP
RETURN
ENDIF
ENDDO
RETURN